home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / tpa22.zip / TP&ASM2.REF < prev    next >
Text File  |  1989-04-22  |  23KB  |  658 lines

  1.  
  2.   TP&Asm           Integrated Compile-Time Assembler          Version 2.0
  3.   TP&Asm-M   Memory Mode Assembly Language Development Tool   Version 2.0
  4.  
  5.                 Copyright (c) 1989  Richard W. Prescott
  6.                           All Rights Reserved
  7.  
  8. ═══════ Built-In Assembly Language Support for Turbo Pascal Compilers ═══════
  9.  
  10.  All brand and product names mentioned herein are trademarks or registered
  11.                 trademarks of their respective holders.
  12.  
  13.   ┌─────────────────────────────────────────────────────────────────────┐
  14.   │ This file contains detailed reference information to enable you to  │
  15.   │ make effective use of the TP&Asm assembly environment.  For general │
  16.   │ information on getting started please see the file README.          │
  17.   └─────────────────────────────────────────────────────────────────────┘
  18.  
  19.  
  20. The following topics are described below:
  21.  
  22.     8. Error Messages
  23.     9. Trouble Shooting
  24.  
  25.  
  26. The following additional topics are covered in the separate file
  27. TP&ASM.REF:
  28.  
  29.     1. Command Line Options
  30.     2. The Assemble Statement
  31.     3. The Asm Statement
  32.     4. The Internal Statement
  33.     5. General Assembler Syntax
  34.     6. TP&Asm-specific Options
  35.     7. Supported Mnemonics
  36.  
  37.  
  38.  
  39.  
  40. 8. Error Messages
  41.  
  42. The following is an alphabetical listing of all syntax error
  43. messages generated by the current version of TP&Asm, together with
  44. very brief explanations of messages which are not self-explanitory.
  45. All assembler syntax errors use error number 200.
  46.  
  47.  
  48.  
  49. [Symbol] Must be declared FORWARD or in INTERFACE
  50.   INTERNAL Assembly PROCs must be defined in your Pascal Code
  51.  
  52. "Dd $" Not Permitted
  53.  
  54. "Proc/Function + Offset" Not Allowed
  55.   The Turbo linker does not permit reference to Pascal Procedures
  56.   and Functions with non-zero numeric offsets.
  57.  
  58. (INTERNAL) Cannot refer to parameters/result by name
  59. (INTERNAL) Proc definition expected
  60.  
  61. (WARNING) Altered BP May Prevent Local Variable Access
  62. (WARNING) Altered Ds May Prevent Access to Turbo VARs
  63. (WARNING) Altered Seg May Prevent Access to Turbo VARs
  64.   Ss and Bp must be restored before referencing Local variables and
  65.   parameters by name.  Ds must be restored before referencing Global
  66.   variables and Typed Constants by name.
  67.  
  68. (WARNING) ES may be undefined
  69.   You have explicitly or implicitly (via a String mnemonic) used the
  70.   Es register without initializing it.
  71.  
  72. (WARNING) May Require Segment Override
  73.   TP&Asm will use the default segment for indexed memory references
  74.   which do not contain a named variable offset.  The default segment
  75.   is Ss for references involving the Bp register, and Ds for all
  76.   others.
  77.  
  78. (WARNING) Possible invalid operand or forward reference
  79.  
  80. Assembler Symbol Overflow
  81.   You have attempted to define more than 4K of symbols in the
  82.   current Assembly block or Internal PROC.  Break into smaller
  83.   blocks or convert some code or data labels to Pascal using
  84.   LABEL and VAR statements.
  85.  
  86. Bad Identifier Character
  87. Bad Identifier Start
  88.   TP&Asm Code and Data labels may contain only alphanumeric
  89.   characters and the special characters @, _, $, and ?.  They
  90.   must begin with a letter, @, or _.
  91.  
  92. Base or Index Register Required
  93.   When Presumptions are disabled you must supply a proper index
  94.   register (usually [Bp]) to reference local VARs.
  95.  
  96. BY requires Byte operand
  97. Byte operand required
  98.  
  99. Cannot Call Short
  100.   The processor does not support a two byte Call instruction
  101.  
  102. Cannot DUP Address Reference
  103. Cannot DUP Forward Reference
  104.  
  105. Cannot EQUate to Assembly Variable
  106. Cannot EQUate to Forward Symbol
  107. Cannot EQUate to Pascal Symbol
  108.   Operands to EQU must be numeric expressions or indexed memory
  109.   references.
  110.  
  111. Cannot Nest Far Procs
  112.   All Assemble PROCs and nested INTERNAL PROCs must be NEAR.
  113.  
  114. Cannot nest address reference
  115. Cannot Nest Memory Reference
  116. Cannot Nest Pascal Symbols
  117.   Parentheses may contain ONLY constants and numeric expressions.
  118.  
  119. Cannot Pop CS
  120.  
  121. Code Label Duplicates Pascal Symbol
  122.   Since TP&Asm allows forward references to Code labels, Code labels
  123.   must be unique from all Pascal symbols.  Data labels may redefine
  124.   Pascal symbols (within the current Assemble/Internal statement).
  125.  
  126. Colon or data size specifier required
  127.   Code labels require ':' or 'PROC'.  Data labels require a data
  128.   definition directive (DB, DW, DD, EQU) or size qualifier (B, W,
  129.   Byte Ptr, etc).
  130.  
  131. CsData MUST be First Code in Unit
  132.   A Procedure or Function BEGIN block has preceded the CsData
  133.   statement.  The CsData statement, if used, must be the first
  134.   code block in the program or unit.
  135.  
  136. Data Name expected
  137.   Labels are required in Data Segment data allocation statements
  138.  
  139. Duplicate Label
  140. Empty quote
  141. ENDP Expected
  142.  
  143. EQUate to CODE Symbol not supported
  144.   Operands to EQU must be numeric expressions or indexed memory
  145.   references.
  146.  
  147. Error In Define Data
  148.  
  149. Error in IF statement
  150.   A conditional statement in an (Assembly) Inline directive/MACRO
  151.   generated no code or exceeded 127 bytes.
  152.  
  153. Error In Jump Statement
  154.   The operand to a Call or Jmp must be a single Pascal or Assembly
  155.   label, a single Pascal Procedure or Function identifier, or a
  156.   variable or memory expression.
  157.  
  158. Error in Mnemonic
  159.   Invalid symbol found in mnemonic field
  160.  
  161. Full record specification required
  162.   References to record components must be prefixed by a valid
  163.   Record Variable or TYPE qualifier, as discussed in the notes
  164.   to the section on General Assembler Syntax.
  165.  
  166. Incorrect Syntax
  167.   When the 'Offset' qualifier is used, the DESTINATION operand
  168.   must be a Register;  'Mov Var1,Offset Var2' is not permitted.
  169.  
  170. INTERNAL Identifier required before NewLine
  171.   You must specify a unique Pascal identifier on the same line as
  172.   the keyword 'Internal'.  See sample file INTERNAL.PAS.
  173.  
  174. Invalid Absolute CSeg Reference in Assembly MACRO
  175.   Inline Directives must not make direct reference to code or data
  176.   labels except in Direct control transfer instructions.
  177.  
  178. Invalid Absolute CSeg Reference
  179.   Location counter ($) references and data type references to code
  180.   and data labels are permitted only in the FIRST code block within
  181.   any program or unit.  Location counter ($) references are not
  182.   permitted in Jumps or EQUates, nor in (Assembly) Inline directive/
  183.   MACROS.  Note: THIS MESSAGE MAY INDICATE AN UNDEFINED PASCAL
  184.   SYMBOL.  If the undefined symbol is a forward referenced ASSEMBLY
  185.   symbol, move the code to the FIRST Proc/Function in the Program or
  186.   Unit.
  187.  
  188. Invalid Address Reference
  189.   You have specified a sum or difference of symbol names that does
  190.   not resolve to a valid address, displacement, or pure constant.
  191.   NOTE: Mov Ax,PasVar1+PasVar2 is not valid because it instructs the
  192.   assembler to place MemW[Dseg: OFS(PasVar1) +OFS(PasVar2)] into Ax.
  193.   ( Instead you must: Mov Ax,PasVar1  and then: Add AX,PasVar2 ).
  194.   Please consult a reference on assembly language programming.
  195.  
  196. Invalid Base Specification [BX] + (implicit) [BP]
  197.   Disable presumptions to use [BX] in place of the presumed [BP]
  198.   indexing for local variables.  (an Ss override will then be
  199.   required, as the processor default segment for [Bx] is Ds).
  200.  
  201. Invalid BIT Syntax
  202.   Example:  Or Dx,Bit 6 ; same as Or Dx,64
  203.  
  204. Invalid Byte/Word Combination
  205.   Use B or W to override defined variable size:
  206.     Mov Al,B IntegerVar
  207.     Mov Ax,Word Ptr ByteVar
  208.  
  209. Invalid Byte/Word/Dword Combination
  210.   You have attempted to use a DWord POINTER as a Byte or Word VALUE,
  211.   or the reverse. (Remember that VAR parameters are DWord Pointers).
  212.   Use B, W, or D to override defined variable size.
  213.  
  214. Invalid Code Reference
  215.   Within the FIRST code block, expressions of the form
  216.     "label1-label2+numeric offset"
  217.   are permitted, where the labels are code or data labels within the
  218.   current assemble statement.
  219.  
  220. Invalid Conditional Transfer to Proc/Function
  221.   Pascal Procedure and Function identifiers are not permitted as
  222.   operands to conditional jumps and loops.
  223.  
  224. Invalid define string operation
  225.   Arithmetic is not permitted on DB strings with length >= 2.
  226.  
  227. Invalid Final Jump or Forward Reference
  228.   TP&Asm does not permit the LAST statem